package com.spsoft.vatoutinv.model.dto.vmsepsInformation;

import com.spsoft.core.model.PageDto;
import com.spsoft.vatoutinv.annotation.Translate;
import com.spsoft.vatoutinv.constants.DictConstant;
import com.spsoft.vatoutinv.constants.TranslateConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * 企业商品及服务信息管理表;企业商品及服务信息管理表 SEQ_VMS_EPS_INFORMATION
Enterprise Product and Service Information Management(VmsEpsInformation)DTO类
 *
 * @author liwm
 * @since 2024-01-08 13:24:32
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value ="企业商品及服务信息管理表;企业商品及服务信息管理表 SEQ_VMS_EPS_INFORMATION-参数对象")
public class VmsEpsInformationDto {

	/**
     * 主键
     */	
	@ApiModelProperty(value = "主键", notes = "主键")
    private Long id;
	/**
     * 应用范围;01全部机构；02选定机构，若为选定机构，则支持多选
     */	
	@ApiModelProperty(value = "应用范围;01全部机构；02选定机构，若为选定机构，则支持多选", notes = "应用范围;01全部机构；02选定机构，若为选定机构，则支持多选")
	@NotNull(message = "请选择应用范围")
    private String application;
	/**
     * 企业商品及服务编码;必填，手工录入，限制录入100个字符
     */	
	@ApiModelProperty(value = "企业商品及服务编码;必填，手工录入，限制录入100个字符", notes = "企业商品及服务编码;必填，手工录入，限制录入100个字符")
   	@NotEmpty(message = "请输入企业商品及服务编码")
    private String epsCode;
	/**
     * 企业商品及服务名称;必填，手工录入，限制录入100个字符
     */	
	@ApiModelProperty(value = "企业商品及服务名称;必填，手工录入，限制录入100个字符", notes = "企业商品及服务名称;必填，手工录入，限制录入100个字符")
    @NotEmpty(message = "请输入企业商品及服务名称")
	private String epsName;
	/**
     * 父级编码;必填，查询范围取值于“税收分类编码信息管理”页面数据
     */	
	@ApiModelProperty(value = "父级编码;必填，查询范围取值于“税收分类编码信息管理”页面数据", notes = "父级编码;必填，查询范围取值于“税收分类编码信息管理”页面数据")
    @NotEmpty(message = "请选择父级编码")
	private String parentCode;
	/**
     * 商品及服务编码;必填，查询范围取值于“税收分类编码信息管理”页面数据
     */	
	@ApiModelProperty(value = "商品及服务编码;必填，查询范围取值于“税收分类编码信息管理”页面数据", notes = "商品和服务税收分类合并编码;必填，查询范围取值于“税收分类编码信息管理”页面数据")
    @NotEmpty(message = "请输入商品及服务编码")
	private String gstcmCode;
	/**
     * 商品和服务名称;自动回显，取值于“税收分类编码信息管理”页面数据
     */	
	@ApiModelProperty(value = "商品和服务名称;自动回显，取值于“税收分类编码信息管理”页面数据", notes = "商品和服务名称;自动回显，取值于“税收分类编码信息管理”页面数据")
	@NotEmpty(message = "请输入商品和服务名称")
	private String sphfwmc;
	/**
     * 商品和服务分类简称;自动回显，取值于“税收分类编码信息管理”页面数据
     */	
	@ApiModelProperty(value = "商品和服务分类简称;自动回显，取值于“税收分类编码信息管理”页面数据", notes = "商品和服务分类简称;自动回显，取值于“税收分类编码信息管理”页面数据")
	@NotEmpty(message = "商品和服务分类简称")
    private String sphfwfljc;
	/**
     * 税率;自动回显，取值于“税收分类编码信息管理”页面数据
     */	
	@ApiModelProperty(value = "税率;自动回显，取值于“税收分类编码信息管理”页面数据", notes = "税率;自动回显，取值于“税收分类编码信息管理”页面数据")
    @NotEmpty(message = "请选择税率")
	private String zzssl;
	/**
     * 计量单位;必填，默认为空，下拉选择：件、个、次、吨、份
     */	
	@ApiModelProperty(value = "计量单位;必填，默认为空，下拉选择：件、个、次、吨、份", notes = "计量单位;必填，默认为空，下拉选择：件、个、次、吨、份")
	private String jldw;
	/**
     * 优惠政策标识;非必填，默认为 空，下拉选择：01：简易征收、02：稀土产品、03：免税、04：不征税、05：先征后退、06：100%先征后退、07：50%先征后退、08：按 3%简易征收、09：按 5%简易征收、10：按 5%简易征收减按1.5%计征、11：即征即退30%、12：即征即退50%、13：即征即退70%、14：即征即退100%、15：超税负 3%即征即退 16：超税负 8%即征即退、17：超税负12%即征即退、18：超税负6%即征即退
     */	
	@ApiModelProperty(value = "优惠政策标识;非必填，默认为 空，下拉选择：01：简易征收、02：稀土产品、03：免税、04：不征税、05：先征后退、06：100%先征后退、07：50%先征后退、08：按 3%简易征收、09：按 5%简易征收、10：按 5%简易征收减按1.5%计征、11：即征即退30%、12：即征即退50%、13：即征即退70%、14：即征即退100%、15：超税负 3%即征即退 16：超税负 8%即征即退、17：超税负12%即征即退、18：超税负6%即征即退", notes = "优惠政策标识;非必填，默认为 空，下拉选择：01：简易征收、02：稀土产品、03：免税、04：不征税、05：先征后退、06：100%先征后退、07：50%先征后退、08：按 3%简易征收、09：按 5%简易征收、10：按 5%简易征收减按1.5%计征、11：即征即退30%、12：即征即退50%、13：即征即退70%、14：即征即退100%、15：超税负 3%即征即退 16：超税负 8%即征即退、17：超税负12%即征即退、18：超税负6%即征即退")
	private String yhzcbs;
	/**
     * 计税方法;必填，下拉选择，可选项以现在系统设置为准
     */	
	@ApiModelProperty(value = "计税方法;必填，下拉选择，可选项以现在系统设置为准", notes = "计税方法;必填，下拉选择，可选项以现在系统设置为准")
    @NotEmpty(message = "请选择计税方法")
	private String jsff;
	/**
     * 征税项目;必填，下拉选择，可选项以现在系统设置为准
     */	
	@ApiModelProperty(value = "征税项目;必填，下拉选择，可选项以现在系统设置为准", notes = "征税项目;必填，下拉选择，可选项以现在系统设置为准")
    @NotEmpty(message = "请选择征税项目")
	private String zsxm;
	/**
     * 启用日期
     */	
	@ApiModelProperty(value = "启用日期", notes = "启用日期")
    @NotNull(message = "启用日期不能为空")
	@Translate(type = TranslateConstant.DATE)
	private String qyrq;
	/**
     * 停用日期
     */	
	@ApiModelProperty(value = "停用日期", notes = "停用日期")
    @NotNull(message = "停用日期不能为空")
	@Translate(type = TranslateConstant.DATE)
	private String tyrq;

	/**
	 * 02选定机构，若为选定机构，则支持多选，此处按照字符串和逗号拼接
	 */
	@ApiModelProperty(value = "选定机构", notes = "选定机构")
	private String jyjg;

	/**
	 * 特定要素标签归类
	 */
	@ApiModelProperty(value = "特定要素", notes = "特定要素")
	private String tdyslxdm;

	/**
	 * 差额征税;Y：是 N：否
	 */
	@ApiModelProperty(value = "差额征税", notes = "差额征税")
	private String cezs;
}
